# -*- coding: utf-8 -*-
# @Time    : 2020/5/31 14:41
# @Author  : Leeli
# @Email   : lililove2000@163.com
# @File    : main.py
# @Software: PyCharm

from kivy.app import App  # 导入Kivy的App的基类
from kivy.uix.boxlayout import BoxLayout  # 引入布局
from kivy.uix.button import Button  # 引入按钮
from kivy.graphics import Rectangle, Color


# 布局类
class BoxLayoutWidget(BoxLayout):
    # 初始化
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.orientation = "vertical"  # 指定布局方向（垂直）
        self.padding = [10, 40, 40, 30]  # 设置间距

        # 设置背景颜色，可忽略
        with self.canvas:
            Color(1, 1, 1, 1)
            self.rect = Rectangle(size=self.size, pos=self.pos)
            self.bind(size=self.update_rect, pos=self.update_rect)

        # 添加一个按钮
        self.add_widget(Button(text="Hello",  # 按钮显示的文本
                               background_color=[.6, .2, .2, 1]))  # 按钮的背景颜色
        self.add_widget(Button(text="BoxLayout", background_color=[.2, .6, .3, .1]))

        # 创建一个子布局
        layout = BoxLayout(orientation="horizontal",
                           spacing=20)  # 设置间距
        # 向子布局添加一个按钮
        layout.add_widget(Button(text="first", background_color=[.2, .2, .7, 1]))
        layout.add_widget(Button(text="second",
                                 size_hint_y=.3,   # 按钮的大小
                                 background_color=[.4, .2, .2, 1]))

        # 向父布局添加子布局
        self.add_widget(layout)

    # 设置背景尺寸，可忽略
    def update_rect(self, *args):
        self.rect.size = self.size
        self.rect.pos = self.pos


# 继承App类
class BoxApp(App):
    # 实现App类的 build()方法
    def build(self):

        # 返回根控件
        return BoxLayoutWidget()


if __name__ == "__main__":  # 程序入口
    BoxApp().run()  # 启动应用程序
